The disclosure relates generally to non-volatile memory access, and more specifically to multiple I/O request processing in a storage system.
Commercially available storage systems include large numbers of hard disk drives operating under various control mechanisms to record, mirror, remotely backup, and reproduce data. The rapidly growing amount of data requires companies to manage the data carefully with their information technology systems, and to assure appropriate performance within such systems.
Communication between host applications and storage systems is limited by the bandwidth of the storage system and the network bandwidth. The total bandwidth of the storage system is defined by a throughput capability and a response time capability. Throughput is a measure of the rate of speed at which the storage system can deliver data. Throughput can be expressed as a data rate in terms of gigabytes delivered per second (GB/sec). The performance of a storage system can also be expressed in terms of Input/Output(I/O) request processing rate per seconds (IOPS).
Transmission Control Protocol over Internet Protocol (TCP/IP) is a common network protocol used by the Internet. The internet Small Computer Systems Interface (iSCSI) transport protocol is a standard which defines one approach for accessing and transporting data over commonly utilized communications networks. Using the iSCSI command and instruction set, conventional Small Computer Systems Interface (SCSI) commands, typically associated with communication within locally maintained storage devices, may be encapsulated in a network-compatible protocol wrapper allowing SCSI communication between devices in a remote manner.
Running over layers of the TCP/IP protocol suite, iSCSI communication in the aforementioned manner is a computationally intensive process. The principal components of this process can be subdivided into: header processing, protocol processing, and data movement. Header processing includes parsing of packet headers at various layers of the protocol, extracting relevant information from headers, updating information as needed, performing tasks implied by the contents of the headers, creating headers for outgoing packets, and other related tasks. Protocol processing steps may include performing connection setups and teardowns, generating acknowledgements with protocol-dependent parameters, and maintaining timers. Data movement refers to storing and retrieving data.
Different applications can possess diverse I/O patterns and can be represented by specifically formulated workloads. I/O workloads are used to represent specific I/O demands of some applications. In general, applications are characterized as either requiring high throughput or fast response time. A high GB/sec is associated with applications which generate fewer I/O requests but demand large amounts of data. A fast response time is associated with applications which generate short requests (for example, online transaction applications). Typically, in order to facilitate better throughput or better TOPS, it is desirable to use as large a packet size as possible to reduce overhead associated with transmitting, receiving and processing data that is stored in the storage system.